package com.agua.enturno.vista.dto.assemblers;

import com.agua.enturno.modelo.turno.Turno;
import com.agua.enturno.vista.dto.TurnoDTO;

import java.util.ArrayList;
import java.util.List;
import java.util.SortedSet;

public class TurnoAssembler extends NullAwareSimpleAssembler<Turno, TurnoDTO> {
	
	private ClienteAssembler clienteAssembler = new ClienteAssembler();
	private HorarioAssembler horarioAssembler = new HorarioAssembler();

	
	@Override
	protected TurnoDTO internalAssemble(Turno turno) {
		return new TurnoDTO(turno.getId(), horarioAssembler.assemble(turno.getHorario()), turno.getNumero(), turno.getEstado(), turno.getComentarioDelEstado(), clienteAssembler.assemble(turno.getCliente()));
	}

	@Override
	protected Turno internalDisassemble(TurnoDTO dtoType) {
		return null;
	}

	public List<TurnoDTO> assemble(SortedSet<Turno> turnos) {
		
		List<TurnoDTO> turnosDTO = new ArrayList<TurnoDTO>();
		
		for (Turno turno : turnos) 
			turnosDTO.add(assemble(turno));
		
		return turnosDTO;
	}
	
}
